package com.qf.java2102.qihaonan.hotel.service.impl;

import com.qf.java2102.qihaonan.hotel.dao.IUserDao;
import com.qf.java2102.qihaonan.hotel.dao.impl.UserDaoImpl;
import com.qf.java2102.qihaonan.hotel.entity.ResultVO;
import com.qf.java2102.qihaonan.hotel.pojo.User;
import com.qf.java2102.qihaonan.hotel.service.IUserService;
import com.qf.java2102.qihaonan.hotel.utils.JdbcUtils;
import com.qf.java2102.qihaonan.hotel.utils.MD5Utils;

import java.sql.SQLException;

/**
 * @author qhn
 * @version 1.0
 */
public class UserServiceImpl implements IUserService {

    private IUserDao userDao = new UserDaoImpl();

    /**
     * 登录
     * @param username
     * @param password
     * @return 登录成功与否的结果类
     */
    @Override
    public ResultVO<User> login(String username, String password) {

        try {
            User user = userDao.findByUsername(username);
            if(user == null) {
                //# user == null
                //# 用户名不存在，请联系管理员！
                return ResultVO.error("用户名不存在，请联系管理员！");
            }
            //	# 用户存在，把页面的密码加密码 跟 user.getPassword()
            if (password == null || !MD5Utils.md5(password).equals(user.getPassword())) {
                //		# 比不上，用户名或密码不对
                return ResultVO.error("用户名或密码不对！");
            }
            if(user.getUserStatus() == 1 && user.getIsDelete() == 0) {
                //		# 判断状态是否合法 user_status == 1 and is_delete = 0 : 登录成功。
                return ResultVO.ok("登录成功", user);
            }
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            JdbcUtils.release(JdbcUtils.getConnection());
        }
        return ResultVO.error("服务器繁忙，请稍后重试！");
    }
}
